/**
 * 系统用到的工具类
 */
/**
 * @description: 格式化时间 api.formatDate(new Date(), 'yyyy-MM-dd H:m:s')
 * @param {Date} time
 * @param {String} format
 * @return {String}
 */
function formatDate (time, format) {
  const o = {
    'M+': time.getMonth() + 1, // 月份
    'd+': time.getDate(), // 日
    'H+': time.getHours(), // 小时
    'm+': time.getMinutes(), // 分
    's+': time.getSeconds(), // 秒
    'q+': Math.floor((time.getMonth() + 3) / 3), // 季度
    'f+': time.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length))
  }
  for (const k in o) {
    if (new RegExp('(' + k + ')').test(format)) {
      format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
    }
  }
  return format
}
// 有效值
function truthy (val) {
  if (val && val !== 'undefined' && val !== 'null' && val !== 'NaN' && val !== null && val !== undefined && val !== '') {
    return true
  }
  return false
}
const groupBy = (array, f) => {
	const groups = {};        
	array.forEach(function (o) {
			const group = JSON.stringify(f(o));
			groups[group] = groups[group] || [];
			groups[group].push(o);
	});
	return Object.keys(groups).map(function (group) {
			return groups[group];
	}); 
}
export {
  formatDate,
  truthy,
  groupBy
}
